home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / umbdvr.exe / UMB_DRVR.DOC < prev    next >
Text File  |  1991-09-21  |  23KB  |  522 lines

  1. UMB_DRVR.DOC       Version 5.03         09/21/91         Page 1
  2.  
  3.  
  4.  
  5.  
  6.  
  7.            UMB_DRVR.SYS Device Driver
  8.             UMB provider for DOS 5.0
  9.          Copyright (C) 1991, All Rights Reserved
  10.  
  11.     Christopher Blum         CompuServe: 76625,1041
  12.     1022 East Wayne Avenue            BIX: cblum
  13.     Wooster, Ohio 44691
  14.  
  15.  
  16.  
  17.  
  18.  
  19. IMPORTANT INFORMATION
  20.  
  21.      This program carries no warranties expressed or implied.  It is
  22. solely up to the user to determine its suitability for use on his
  23. machine.
  24.  
  25.      This program is made available on a 'try before you buy' basis.
  26. It is not crippled in any way, has no 'advertising', and future versions
  27. will be made available via these same channels as they are developed.
  28.  
  29.      Personal use license is $10.00 ( U.S. funds ) which should be
  30. mailed to the above address if the program is used after a reasonable
  31. trial period.
  32.  
  33.      Corporate users must contact me for corporate rate or site license
  34. arrangements.
  35.  
  36.      This program is distributed as a self-extracting file containing
  37. the device driver and its associated documentation. Copying and
  38. redistribution is encouraged, but must be the original, unmodified
  39. file containing this documentation, and the transfer must not carry
  40. any fee or charge specific to this program: i.e. general BBS access
  41. or line charges are OK, but no 'download fee' or similar charge. This
  42. means that BBS operators may post this file for download, but
  43. 'Distribution houses' which charge for copies of disks are expressly
  44. forbidden to distribute without prior written permission from me.
  45.  
  46.      The most current version will be available on CompuServe in the
  47. IBM forum ( 'go ibmsys' ). New versions will be uploaded as more chip
  48. sets are supported.
  49.  
  50.      The best way to contact me is via CompuServe Email ( EasyPlex )
  51. as 76625,1041 - I monitor my mail almost every day, and I will try to
  52. respond to requests for assistance as best I can. Do NOT leave me
  53. messages in a forum. I do not regularly scan them, and it may never
  54. reach me. I also monitor my Email on BIX - address it to 'cblum'.
  55. The U.S. Postal Service is also OK ( address above ), but not as timely.
  56. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 2
  57.  
  58.  
  59. INTRODUCTION
  60.  
  61.      UMB_DRVR.SYS is a DOS 5.0 device driver that will use the shadow
  62. memory capability of the memory controller portion of various chip sets
  63. to:
  64.      A) force all roms not specifically excluded to be shadowed, and
  65.      B) expand DOS base memory beyond 640KB if possible, and
  66.      C) provide UMBs ( Upper Memory Blocks ) to DOS for loading
  67.     programs and device drivers into 'high memory'
  68. while NOT using ANY resident memory ( mapped out or otherwise ).
  69.  
  70.      One advantage of this driver is that many if not all other device
  71. drivers and TSR programs may be loaded 'high' including HIMEM.SYS and
  72. EMM386.EXE ( even though the DOS documentation says not! ).
  73.      A second advantage of using UMB_DRVR.SYS is that device drivers
  74. that cannot be loaded high when EMM386.EXE is providing UMBs via the
  75. 'ram' or 'noems' parameter because of their use of DMA transfers will
  76. probably work with UMB_DRVR.SYS ( EMM386.EXE remaps ram using virtual-86
  77. mode and the memory management logic on the 386+ chips, and the virtual
  78. address is not the same as the real address for the ram area mapped as
  79. UMBs, whereas UMB_DRVR.SYS uses the hardware external to the cpu and
  80. remains in real mode, allowing DMA transfers within the UMB area ).
  81.      In addition, remaining in real mode allows programs that must be
  82. able to use protected or virtual-86 mode themselves, such as Borland's
  83. Turbo Debugger ( TD386.EXE / TDH386.SYS ), to operate as intended ( and
  84. yes, TDH386.SYS can be loaded high with no problems ).
  85.  
  86.  
  87. CURRENT CHIP SET SUPPORT
  88.  
  89.      nn Chip set description
  90.      -- ----------------------------------------------------------------
  91.      01 Chips and Technologies CS8221/CS8281 NEAT, CS8223/CS8283 LEAP
  92.       ( laptop power mamagement ) chip sets ( 286, 386SX )
  93.      02 VLSI Technology VL82C200 chip set ( 286, 386SX )
  94.      03 FOREX FRX36C300 chip set ( 386DX with cache )
  95.      04 Chips and Technologies CS8230/CS8231/CS8233 (PEAK)386/AT chip
  96.       sets ( 386DX, 386DX with cache )
  97.      05 Chips and Technologies 82C235/82C836 SCAT chips ( 286, 386SX )
  98.      -- ----------------------------------------------------------------
  99.  
  100.      If your chip set is not in the preceeding list, I can include
  101. support for it if you can supply me with the proper documentation.
  102.      Watch for future updates - I am currently working on support for
  103. Texas Instruments TACT83000 ( 386SX/386DX/486SX/486DX ), VLSI Technology
  104. TOPCAT ( 286/386/386SX/386DX ), a variety of INTEL chip sets for ISA and
  105. EISA 386SX/386DX/486SX/486DX systems, and various chip sets from OPTi,
  106. ETEQ Microsystems, and Elite Microelectronics.
  107. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 3
  108.  
  109.  
  110. INSTALLATION
  111.  
  112.      Installation ( preferably as the first driver ) is via the line
  113.  
  114.      DEVICE=UMB_DRVR.SYS /C=nn [/M=ssssssssssssssssssssssss]
  115.  
  116. in your CONFIG.SYS file. The /C= parameter is required - nn is the chip
  117. set from the list above. The /M= parameter is optional and is used to
  118. override defaults.  It contains positional characters corresponding to
  119. 16K memory blocks at the following addresses:
  120.  
  121.       /M=ssssssssssssssssssssssss
  122.     A0000'||||||||||||||||||||||`FC000---| Only '..' and '--' may be
  123.      A4000'||||||||||||||||||||`F8000----| used for the system BIOS.
  124.       A8000'||||||||||||||||||`F4000--|
  125.   Video    AC000'||||||||||||||||`F0000---| '..', '--', '++', and '##'
  126.    RAM        B0000'||||||||||||||`EC000    | may be used for boot page.
  127.          B4000'||||||||||||`E8000     | Use '##' to force area to be
  128.           B8000'||||||||||`E4000      | shadowed as part of BIOS.
  129.            BC000'||||||||`E0000
  130.              |||||||`DC000
  131.              ||||||`D8000
  132.              |||||`D4000
  133.              ||||`D0000
  134.              |||`CC000
  135.              ||`C8000
  136.              |`C4000
  137.              `C0000
  138.  
  139.        s = '.' Allow default use of block
  140.            '-' Force block to be unused and unshadowed
  141.            '+' Force block to be used for UMBs or
  142.              to expand DOS base memory beyond 640K
  143.  
  144. The /M= parameter must always be supplied as all 24 characters, using
  145. the '.' character to fill any positions not forced on or off. For
  146. example, on a VGA system using video memory from A0000 to BFFFF, if
  147. it is in CGA 80 x 25 mode, the only video memory in use is B8000-BFFFF.
  148. In this case, the memory from A0000-AFFFF may be used to expand DOS
  149. base memory beyond 640K ( with some VGA cards ) by using the parameter:
  150.  
  151.      /M=++++....................
  152.  
  153. Of course, with the system configured like this, if you change the video
  154. mode, undefined ( read as disaster city! ) results will occur.
  155.  
  156.      A second example would be a system where you wish to use EMM386.EXE
  157. to supply EMS memory and wish to use C8000-D7FFF as the EMS base address
  158. range. To accomplish this, use the parameter:
  159.  
  160.      /M=..........----..........
  161.  
  162. to reserve this memory for EMM386.EXE to use. You will also need to use
  163. the I= parameter for EMM386.EXE to include C8000-D7FFF for its use.
  164. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 4
  165.  
  166.  
  167. DRIVER OPERATION
  168.  
  169.      The driver must be installed BEFORE HIMEM.SYS is installed. It is
  170. an XMS 2.0 server providing UMBs to DOS via that standard. The chip
  171. set parameter is processed and the proper routine called to remap the
  172. unused shadow ram to DOS-useable memory. Available memory starting at
  173. A0000 is used to expand DOS base memory beyond 640K, and other available
  174. memory ( i.e. above the video memory ) is used for UMBs ( the areas
  175. DOS uses for DEVICEHIGH or LOADHIGH commands ).
  176.  
  177.      The driver by default will not use any areas used for video memory.
  178. It also forces any roms including the system BIOS ( F8000-FFFFF ) to be
  179. shadowed unless specifically excluded. If the BIOS has a 'boot page'
  180. at F0000-F7FFF that the driver can recognize ( containing system / CMOS
  181. setup code - AMI is one brand that has this ), that area will be mapped
  182. as available ram since it is not needed after boot time.
  183.  
  184.      The driver should be loaded as the first driver if possible. This
  185. allows following drivers and resident programs to be loaded high - even
  186. HIMEM.SYS and EMM386.SYS ( DOS documentation says they can't, but it
  187. works - see note about Windows, however ). It will initialize, supply
  188. UMBs, and go away leaving no resident memory anywhere.
  189.  
  190.      Appropriate status and error messages are issued during processing
  191. and a map of the driver's action is displayed.
  192.  
  193.  
  194. SYSTEM SETUP EXAMPLE
  195.  
  196.      One of my systems is a 386SX using the Chips and Technologies NEAT
  197. chip set. It has 4MB of RAM and a Hercules Monochrome Graphics card.
  198. I configure 2MB of EMS memory with a base address of C0000-CFFFF using
  199. the NEAT hardware and their supplied software driver RMS386N.SYS. I load
  200. DOS into the HMA using HIMEM.SYS, and also load Borland's Turbo Debugger
  201. device driver TDH386.SYS for 386 virtual debugging ( TD386 ) and the
  202. ANSI.SYS console driver. My CONFIG.SYS looks like this:
  203.  
  204.      BREAK=ON
  205.      FILES=30
  206.      BUFFERS=40
  207.      STACKS=0,0
  208.      SHELL=C:\DOS\COMMAND.COM C:\DOS\ /P
  209.      DEVICE=C:\UTILITY\UMB_DRVR.SYS /C=01
  210.      DEVICEHIGH=C:\DOS\HIMEM.SYS
  211.      DEVICEHIGH=C:\BORLANDC\BIN\TDH386.SYS
  212.      DEVICEHIGH=C:\UTILITY\RMS386N.SYS
  213.      DEVICEHIGH=C:\DOS\ANSI.SYS
  214.      DOS=HIGH,UMB
  215.  
  216. This gives me 704K base memory for DOS, a maximum executable program
  217. size of almost 690K, and 160K in one UMB at D0000-F7FFF with almost 128K
  218. still free in that upper memory block for a mouse driver, network
  219. driver, TSR, etc. I consider that a pretty good cure for 'RAM cram'!
  220. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 5
  221.  
  222.  
  223. MISCELLANEOUS NOTES
  224.  
  225.  
  226. *************
  227. * Boot page *
  228. *************
  229.  
  230.      If UMB_DRVR.SYS uses the 'boot page' area by default and your
  231. system crashes, you need to use the /M= parameter to force it to be
  232. considered part of the BIOS ( use '##' or '--' ). If no 'boot page' is
  233. recognized, you may still be able to use the /M= parameter ( with '++'
  234. for F0000-F7FFF ) to use the area ( if you are brave enough to try it ).
  235.  
  236.  
  237. ***************
  238. * EMS drivers *
  239. ***************
  240.  
  241.      If you run EMS, it is most efficient in terms of contiguous memory
  242. to have your EMS base address immediately following your video ram and
  243. any adjacent rom ( e.g. C0000-CFFFF for CGA or monochrome, C8000-D7FFF
  244. for VGA ) or at the top of the useable area ( e.g. E8000-F7FFF with a
  245. 'boot page', E0000-EFFFF without ).
  246.      It is more efficient to use the hardware EMS driver for your chip
  247. set if it supports it ( e.g. C & T NEAT ) or for your EMS memory card if
  248. you have one instead of EMM386.EXE; see Introduction re Virtual-86 mode.
  249.      If you use a hardware EMS driver, you must use the /M= parameter to
  250. force UMB_DRVR.SYS to exclude the EMS base area.
  251.      If you use EMM386.EXE, you must include the I= parameter to allow
  252. it to use the EMS base area, and you must use the /M= parameter to force
  253. UMB_DRVR.SYS to exclude the EMS base area. The EMS base area must be
  254. above where EMM386.EXE is loaded ( i.e. if you load it high, the base
  255. area must be above the UMB area ). Although you cannot specify a frame=
  256. parameter of E800, using i=E800-F7FF will allow EMM386.EXE to set the
  257. frame there. See notes for Windows.
  258.  
  259.  
  260. ********************************
  261. * ROMs that cannot be shadowed *
  262. ********************************
  263.  
  264.      Some roms cannot be shadowed by normal means because they have some
  265. ram they must use mapped in their address space ( e.g. some RLL, ESDI
  266. and SCSI disk controller roms ) and shadowing is normally done using
  267. protected ram. These roms usually will work when shadowed by this driver
  268. if they are within a protection block also containing UMBs. Try letting
  269. UMB_DRVR.SYS shadow the rom and see if it works.
  270.      If you find you have a rom that cannot be shadowed, or for some
  271. reason you do not wish to shadow a rom, you must use the /M= parameter
  272. to exclude it from UMB_DRVR.SYS control.  Refer to the chip-set-specific
  273. notes for any special considerations.
  274. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 6
  275.  
  276.  
  277. MISCELLANEOUS NOTES
  278.  
  279.  
  280. ***********
  281. * Windows *
  282. ***********
  283.  
  284.      Windows 3.0 has been tested as follows:
  285.  
  286. 386 enhanced mode:
  287.      Windows will NOT run in 386 enhanced mode with UMB_DRVR.SYS in the
  288. system. Use EMM386.EXE to provide UMBs if you want to run this way.
  289.  
  290. Standard mode:
  291.      Windows will run in standard mode with UMB_DRVR.SYS installed and
  292. HIMEM.SYS and an EMS driver ( hardware or EMM386.EXE ) loaded high or
  293. low. Note you must have some extended memory to run standard mode - i.e.
  294. do not have EMM386.EXE remap ALL extended memory to expanded.
  295.  
  296. Real mode:
  297.      Windows runs in real mode with UMB_DRVR.SYS installed, HIMEM.SYS
  298. loaded high, and EMM386.EXE loaded LOW, giving 'large frame EMS'. You
  299. can have EMM386.EXE remap everything to expanded in this configuration.
  300.  
  301.  
  302. **************************************************************
  303. * User Program access to Upper Memory with DOS managing UMBs *
  304. **************************************************************
  305.  
  306. 1. Record current status of memory system so you can restore it.
  307. int 21H/ax=5800h - returns al=strategy ( see below )
  308. int 21h/ax=5802h - returns al=UMB link state ( see below )
  309.  
  310. 2. Set up for memory allocation / deallocation.
  311. int 21h/ax=5801h/bh=0/bl=strategy    int 21h/ax=5803h/bh=0/bl=UMB status
  312.   00h - first fit, low memory           00h = remove UMBs from mem chain
  313.   01h - best   "    "     "             01h = add UMBs to mem chain
  314.   02h - last   "    "     "           ( UMBs must be chained for access )
  315.   40h - first fit, high memory
  316.   41h - best   "    "      "
  317.   42h - last   "    "      "
  318.   80h - first fit, try high then low memory
  319.   81h - best   "    "    "    "      "    "
  320.   82h - last   "    "    "    "      "    "
  321.  
  322. 3. Do normal int 21h/ah=48h, int 21h/ah=49h, int 21h/ah=4Ah as desired.
  323.  
  324. 4. Restore values saved in step 1 above.
  325.  
  326.      The system defaults to first-fit-low with UMBs not chained. If you
  327. chain the UMBs, strategies 00/01/02 affect the entire chain. For example
  328. with the UMBs chained and strategy 00, you will get memory from the UMB
  329. area if the request cannot be satisfied from low memory.
  330. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 7
  331.  
  332.  
  333.  
  334. CHIP-SET-SPECIFIC NOTES
  335.  
  336.  
  337.  
  338. ***************************************************************
  339. * Chips & Technologies CS8221/CS8281 NEAT, CS8223/CS8283 LEAP *
  340. ***************************************************************
  341.  
  342.      These chip sets allows the 384k of motherboard ram at A0000-FFFFF
  343. to remap to extended memory at 100000-15FFFF on systems with only 1mb of
  344. ram. If you have only 1mb of ram on your system, you must make sure that
  345. this remapping is turned off for UMB_DRVR.SYS to work. See your system
  346. documentation / CMOS setup.
  347.      These chip sets maps in 16k segments, but write protection for the
  348. area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
  349. the driver marks any segment containing UMBs as read/write. If the 64k
  350. segment also contains a rom shadow, it is not protected.
  351.      Although it should not be necessary, if you wish to have a rom be
  352. shadowed and protected, exclude any non-rom areas within the 64k segment
  353. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  354.      If you must force a rom to be unshadowed, you need only exclude the
  355. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  356. C8000-CBFFF ).
  357.      UMB_DRVR.SYS will recognize the EMS setup for these chip sets and
  358. will by default exclude the EMS base segment if the EMS hardware is
  359. enabled. Use of the /M= parameter is not required in this case.
  360.      The driver requires no special setup for these chip sets.
  361.  
  362.  
  363.  
  364. *************************************
  365. * VLSI Technology VL82C200 chip set *
  366. *************************************
  367.  
  368.      This chip set uses a jumper or switch to enable shadow ram ability.
  369. This does not actually cause shadowing, but must be in proper position
  370. for UMB_DRVR.SYS to work. Check your system documentation.
  371.      This chip set maps and protects in 64k segments. To allow maximum
  372. memory utilization, 64k segments containing UMBs are set to read/write.
  373. If the 64k segment also contains a rom shadow, it is not protected.
  374.      Although it should not be necessary, if you wish to have a rom be
  375. shadowed and protected, exclude any non-rom areas within the 64k segment
  376. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  377.      If you must force a rom to be unshadowed, exclude the entire 64k
  378. segment on a 64k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
  379. C0000-CFFFF ).
  380.      The driver requires no special setup for this chip set.
  381. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 8
  382.  
  383.  
  384.  
  385. CHIP-SET-SPECIFIC NOTES
  386.  
  387.  
  388.  
  389. ****************************
  390. * FOREX FRX36C300 chip set *
  391. ****************************
  392.  
  393.      This chip set maps in 32k segments from C0000 to EFFFF, and one 64k
  394. segment for the system BIOS ( F0000-FFFFF ).  Ram at A0000-BFFFF is
  395. always remapped to the highest area and cannot be used by the driver.
  396. Protection is set globally, meaning that all used ram ( shadow or UMBs )
  397. is marked read/write.
  398.      The chip set also remaps D0000-EFFFF to the highest area if there
  399. is nothing shadowed in that area. When UMB_DRVR.SYS enables this area,
  400. the remapping is removed and the size of your extended memory is reduced
  401. by 128k. A small INT 15H stub is installed in the BIOS stack area at
  402. 30H:80H to handle situations where your extended memory size changes. If
  403. you shadow something in the area D0000-EFFFF in your CMOS setup ( even
  404. though you may have no rom there ), then this stub is not required and
  405. not installed.
  406.      If you must force a rom to be unshadowed, exclude the entire 32k
  407. segment on a 32k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
  408. C8000-CFFFF ).
  409.      The driver requires no special setup for this chip set.
  410.  
  411.  
  412.  
  413. **********************************************************
  414. * Chips & Technologies CS8230/CS8231/CS8233 (PEAK)386/AT *
  415. **********************************************************
  416.  
  417.      These chip sets maps in 16k segments, but write protection for the
  418. area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
  419. the driver marks any segment containing UMBs as read/write. If the 64k
  420. segment also contains a rom shadow, it is not protected.
  421.      Although it should not be necessary, if you wish to have a rom be
  422. shadowed and protected, exclude any non-rom areas within the 64k segment
  423. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  424.      If you must force a rom to be unshadowed, you need only exclude the
  425. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  426. C8000-CBFFF ).
  427.      The driver requires no special setup for these chip sets.
  428. UMB_DRVR.DOC        Version 5.03         09/21/91          Page 9
  429.  
  430.  
  431.  
  432. CHIP-SET-SPECIFIC NOTES
  433.  
  434.  
  435.  
  436. *************************************************
  437. * Chips & Technologies 82C235/82C836 SCAT chips *
  438. *************************************************
  439.  
  440.      These chips map in 16k segments, but write protection for the area
  441. C0000-FFFFF is in 32k segments. To allow maximum memory utilization the
  442. driver marks any segment containing UMBs as read/write. If the 32k
  443. segment also contains a rom shadow, it is not protected.
  444.      Although it should not be necessary, if you wish to have a rom be
  445. shadowed and protected, exclude any non-rom areas within the 32k segment
  446. ( e.g. for a rom at C8000-CBFFF, exclude CC000-CFFFF ).
  447.      If you must force a rom to be unshadowed, you need only exclude the
  448. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  449. C8000-CBFFF ).
  450.      The driver requires no special setup for these chips.
  451. UMB_DRVR.DOC        Version 5.03         09/21/91         Page 10
  452.  
  453.  
  454. ERROR MESSAGES
  455.  
  456. ***************************
  457. * Shadow ram test failure *
  458. ***************************
  459.  
  460.      This message is issued when the shadow ram read/write test fails.
  461. It is usually an indication that you do not have your system configured
  462. properly for UMB_DRVR.SYS, or you are forcing use of unavailable memory.
  463. Check your CMOS setup and any jumpers or switches per your system
  464. documentation. Also review the chip-set-specific notes earlier in this
  465. document for any requirements.
  466.      This can also occur if you are trying the example listed earlier
  467. about using a portion of the video ram on a VGA system in CGA mode and
  468. your VGA hardware will not allow it.
  469.  
  470. ******************************
  471. * Chip not found / bad setup *
  472. ******************************
  473.  
  474.      As much as possible, UMB_DRVR.SYS tries to verify that you have the
  475. chip you indicated in the /C= parameter and that it is set up properly.
  476. Refer to the chip-set-specific notes and correct your CMOS system setup.
  477.      If you are sure you have the chip set, have specified it correctly,
  478. and have it set up properly, contact me via Email or postal service and
  479. I will try to straighten things out.
  480.  
  481. *************************
  482. * XMS already installed *
  483. *************************
  484.  
  485.      You have not installed UMB_DRVR.SYS before HIMEM.SYS in your
  486. CONFIG.SYS file. Correct the order of the DEVICE= statements in your
  487. CONFIG.SYS file and and reboot.
  488.  
  489. *************************
  490. * Incorrect DOS version *
  491. *************************
  492.  
  493.      UMB_DRVR.SYS requires DOS 5.0 for proper operation.
  494.  
  495. ************************
  496. * Invalid parameter(s) *
  497. ************************
  498.  
  499.      On the DEVICE= statement for UMB_DRVR.SYS you have either:
  500.       A) omitted or incorrectly specified the /C= parameter, or
  501.       B) specified the /M= parameter incorrectly.
  502. Check that you have entered the proper 2-digit number for your chip set
  503. and that ( if specified ) the /M= parameter contains 24 valid characters
  504. from the set '.' ( period ), '-' ( minus ), '+' ( plus ) and '#' ( pound
  505. sign ). Correct the DEVICE= statement in CONFIG.SYS and reboot.
  506. UMB_DRVR.DOC        Version 5.03         09/21/91         Page 11
  507.  
  508.  
  509. REVISION HISTORY
  510.  
  511.      5.03 [09/21/91] - Added Chips & Technologies CS8230/CS8231/CS8233
  512.                (PEAK)386/AT, 82C235/82C836 SCAT chip sets,
  513.                removed as many setup requirements as possible.
  514.      5.02 [09/12/91] - Fix for VLSI technology VL82C200, default all
  515.                roms shadowed, added support for use of 'boot
  516.                page' area, added FOREX FRX32C300 chip set
  517.      5.01 [09/04/91] - Added VLSI Technology VL82C200 chip set
  518.      5.00 [09/01/91] - Original release version, Chips & Technologies
  519.                CS8221/CS8281 NEAT, CS8223/CS8283 LEAP chip sets
  520.  
  521.            ***** END OF DOCUMENTATION *****
  522.